package com.android.openapp.ui;

import com.google.android.maps.MapView;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Fragment che visualizza una mappa
 * ATTENZIONE serve una key fornita da Google per poter visualizzare la mappa
 * la chiave e' associata al keystore
 * https://developers.google.com/maps/documentation/android/mapkey
 * in fase di sviluppo e debugging uso il keystore di debug (default)
 * per conoscere il percorso del keystore debug: 
 * Window->Preferences->Android->Build
 * o usate la key che ho inserito nel file maplayout.xml (e dovete usare il mio stesso keystore)
 * oppure registrate il vostro keystore di debug
 * @author Simone Panza
 *
 */
public class MapFragment extends Fragment {

	/**
	 * empty constructor, as requested from Android documentation
	 */
	public MapFragment(){
		
	}
	
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onActivityCreated(savedInstanceState);
	}
	
	private View mMapViewContainer;
	private MapView mMapView;
	//TODO sarebbe utile un bottone stile app di Google maps che ci porta alla posizione corrente
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		super.onCreateView(inflater, container, savedInstanceState);
		//recupero la MapView che avevo inflatato nella MainActivity
		MainActivity mActivity = (MainActivity) getActivity();
		mMapViewContainer = mActivity.mMapViewContainer;
		mMapView = mActivity.mMapView;
		
		//controlli per lo zoom ed eventualmente altre opzioni
		if(mMapView != null){
			mMapView.setBuiltInZoomControls(true);
		}
		return mMapViewContainer;
	}
	
	@Override
	public void onDestroyView() {
		super.onDestroyView();
		//devo cancellare la view dal parent altrimenti nella prossima onCreateView esce un'eccezione
		ViewGroup parentViewGroup = (ViewGroup) mMapViewContainer.getParent();
		if (parentViewGroup != null){
			parentViewGroup.removeView(mMapViewContainer);
		}
	}
}
